package rbb.itm5.bwinf.roboter.Model;

import java.awt.Point;

/**
 * Diese Klasse speichert alle Eigenschaften eines Ausgangs.
 *
 * @author Dominik Jakielski
 */
public class Door {

    /**
     * Orientierungskonstante für die vertikale Richtung
     */
    public static final int VERTICAL = 1;
    /**
     * Orientierungskonstante für die horizontale Richtung
     */
    public static final int HORIZONTAL = 2;
    private int x, y, size, orientation = 0;

    /**
     * Erstellt einen Ausgang mit allen Positions- und Größen- Angaben.
     *
     * @param x Horizontale Position des Ausgangs
     * @param y Vertikale Position des Ausgangs
     * @param width Breite des Ausgangs
     * @param height Höhe des Ausgangs
     */
    public Door(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        if (height == 0 && width == 0) {
            throw new IllegalArgumentException("Size is 0. Width or Height must be highter then 0 !");
        }
        if (height == 0) {
            this.size = width;
            this.orientation = HORIZONTAL;
        }
        if (width == 0) {
            this.size = height;
            this.orientation = VERTICAL;
        }
    }

    /**
     * Getter für die Position
     *
     * @return Gibt die Position des Ausgangs als java.awt.Point zurück.
     */
    public Point getPostion() {
        return new Point(x, y);
    }

    /**
     * Getter für die Größe
     *
     * @return Die Breite bzw. Länge des Ausgangs.
     */
    public int getSize() {
        return size;
    }

    /**
     * Getter für die Orientierung.
     *
     * @return Gibt die Orientierung zurück. (Horizontal bzw. Vertikal)
     */
    public int getOrientation() {
        return orientation;
    }
}
